home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / elk-2_0.lha / elk-2.0 / lib / xt / xt.h < prev   
C/C++ Source or Header  |  1992-10-07  |  4KB  |  113 lines

  1. #include "../xlib/xlib.h"
  2.  
  3. #define Object FOO
  4. #  include <X11/Intrinsic.h>
  5. #  include <X11/Core.h>
  6. #  include <X11/StringDefs.h>
  7. #undef Object
  8.  
  9. #if XtSpecificationRelease < 4
  10.  #error "Xt Release 3 or earlier no longer supported"
  11. #endif
  12.  
  13. #if XtSpecificationRelease >= 5
  14. #  define XT_RELEASE_5_OR_LATER
  15. #endif
  16.  
  17. typedef XtArgVal (*PFS2X) P_((Object));
  18. typedef Object (*PFX2S) P_((XtArgVal));
  19.  
  20. extern int T_Context;
  21. extern int T_Class;
  22. extern int T_Widget;
  23. extern int T_Identifier;
  24.  
  25. #define CONTEXT(x)    ((struct S_Context *)POINTER(x))
  26. #define CLASS(x)    ((struct S_Class *)POINTER(x))
  27. #define WIDGET(x)    ((struct S_Widget *)POINTER(x))
  28. #define IDENTIFIER(x)   ((struct S_Identifier *)POINTER(x))
  29.  
  30. struct S_Context {
  31.     Object tag;
  32.     XtAppContext context;
  33.     char free;
  34. };
  35.  
  36. struct S_Class {
  37.     Object tag;
  38.     WidgetClass class;
  39.     char *name;
  40. };
  41.  
  42. struct S_Widget {
  43.     Object tag;
  44.     Widget widget;
  45.     char free;
  46. };
  47.  
  48. struct S_Identifier {
  49.     Object tag;
  50.     char type;
  51.     XtPointer val;
  52.     int num;
  53.     char free;
  54. };
  55.  
  56. extern WidgetClass widgetClass;    /* The `core' class */
  57. extern WidgetClass constraintWidgetClass;
  58. extern WidgetClass compositeWidgetClass;
  59.  
  60. C_LINKAGE_BEGIN
  61.  
  62. extern void Check_Callback_List P_((Object));
  63. extern void Check_Context P_((Object));
  64. extern void Check_Widget P_((Object));
  65. extern void Check_Widget_Class P_((Object, WidgetClass));
  66. extern void Convert_Args P_((int, Object*, ArgList, Widget, WidgetClass));
  67. extern void Define_Callback P_((char*, char*, int));
  68. extern void Define_Class
  69.     P_((char *, WidgetClass, XtResourceList, int));
  70. extern void Define_Converter_To_C P_((char*, PFS2X));
  71. extern void Define_Converter_To_Scheme P_((char*, PFX2S));
  72. extern void Fiddle_Destroy_Callback P_((Widget));
  73. extern void Fill_Callbacks P_((Object, XtCallbackList, int, PFX2S));
  74. extern void Free_Actions P_((XtAppContext));
  75. extern void Get_All_Resources
  76.     P_((int, Widget, WidgetClass, XtResource**, int*, int*));
  77. extern void Make_Resource_Name P_((char*));
  78. extern int Match_Xt_Obj P_((ELLIPSIS));
  79. extern Object Get_Callbackfun P_((XtPointer));
  80. extern Object Get_Function P_((int));
  81. extern Object Get_Resources
  82.     P_((WidgetClass, void (*)(WidgetClass, XtResourceList*, Cardinal*), int));
  83. extern Object Get_Values P_((Widget, int, Object*));
  84. extern Object Make_Class P_((WidgetClass, char*));
  85. extern Object Make_Context P_((XtAppContext));
  86. extern Object Make_Context_Foreign P_((XtAppContext));
  87. extern Object Make_Id P_((int, XtPointer, int));
  88. extern Object Make_Widget P_((Widget));
  89. extern Object Make_Widget_Foreign P_((Widget));
  90. extern Object Make_Widget_Class P_((WidgetClass));
  91. extern PFX2S Find_Callback_Converter P_((WidgetClass, char*, Object));
  92. extern PFX2S Find_Converter_To_Scheme P_((char*));
  93. extern PFS2X Find_Converter_To_C P_((char*));
  94. extern int Register_Function P_((Object));
  95. extern void Deregister_Function P_((int));
  96. extern XtAccelerators Get_Accelerators P_((Object));
  97. extern XtTranslations Get_Translations P_((Object));
  98. extern XtPointer Use_Id P_((Object, int));
  99. extern void Xt_Warning P_((char*));
  100. extern char *Class_Name P_((WidgetClass));
  101. extern void Action_Hook P_((Widget, XtPointer, char*, XEvent*, char**, int*));
  102. extern void Destroy_Callback_Proc P_((Widget, XtPointer, XtPointer));
  103. extern void Get_Sub_Resource_List P_((WidgetClass, XtResourceList*, Cardinal*));
  104.  
  105. C_LINKAGE_END
  106.  
  107. #define Encode_Arglist(ac,av,to,widget,class) {\
  108.     Alloca (to, Arg*, ((ac)+1)/2 * sizeof (Arg));\
  109.     Convert_Args (ac, av, to, widget, class);\
  110. }
  111.  
  112. #define streq(a,b) (strcmp ((a), (b)) == 0)
  113.